Field
The present embodiments are generally related to a locking protocol for partitioned and distributed database tables.
Background
Conventional database management systems have been optimized to perform on hardware with limited main memory, e.g. random access memory (RAM). These conventional database management systems have slower disk input/output (I/O) that serves as a bottleneck.
However, computer architecture has advanced so that multi-core parallel processing is possible by processor cores communicating using RAM or a shared cache. In addition, RAM is no longer as limited a resource. Databases may now be stored entirely in RAM and thus disk access is no longer a limiting factor for performance. However, multi-core systems present other challenges.
Databases of online transaction processing systems have been modified to utilize multi-core parallel processor computer systems efficiently. In particular, these databases support parallel execution of transactions, are now located in-memory and are organized to be cache efficient. In addition, the databases support partitioning over a plurality of nodes. Conventionally, there was a single lock manager used for an entire partitioned database table. Maintaining this single lock manager provides challenges such as deadlock and extra network costs as well as overhead resulting from a master database node. However, conventional locking protocols may be improved to mitigate deadlock and overhead.